import pyperclip


class DropEmptyLine:
    """读取多行文本，忽略空行，并复制到剪贴板"""

    def __init__(self, end_marker="end"):
        self.end_marker = end_marker

    def read_input(self) -> list[str]:
        """从控制台读取多行文本，忽略空行"""
        print(f"请输入多行文本，以 '{self.end_marker}' 单独一行结束：")
        lines = []
        while True:
            line = input()
            if line.strip().lower() == self.end_marker:
                break
            if line.strip():  # 忽略空行
                lines.append(line)
        return lines

    def read_and_process_input(self, text: str) -> str:
        """处理多行字符串，去除换行符，合并为单个字符串"""
        """删除空行，保留其他行及换行符"""
        if not text:
            return ""

        # splitlines() 按行分割，但不会保留换行符
        # 因此我们手动用 '\n' 拼接回去
        lines = [line for line in text.splitlines() if line.strip()]
        return '\n'.join(lines)

